package com.paic.mhis.hcpms.quota.exportword.biz.service;

import java.util.Map;

public interface WordReportService {
	public Map<String, Object> queryMorOrgOutData(Map<String, Object> mapValue);

	public Map<String, Object> queryOutData(Map<String, Object> mapValue, Map<String, Object> kpiQuotaLimitMap);

	public Map<String, Object> queryOutYearData(Map<String, Object> mapValue);

	public Map<String, Object> queryOneOutData(Map<String, Object> mapValue, Map<String, Object> kpiQuotaLimitMap);

	public Map<String, Object> queryOneOutYearData(Map<String, Object> mapValue, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * 查询某月月均住院日和 每日费用
	 * ------------------------------------------------------------------
	 * 2015-2-5 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryKpiData(Map<String, Object> mapValue, Map<String, Object> kpiLimitValue);

	/**
	 * 查询一年的月均住院日和 每日费用
	 * ------------------------------------------------------------------
	 * 2015-2-5 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryYearKpiData(Map<String, Object> mapValue);

	/**
	 * 查询各级机构直接的月均住院日和 每日费用对比
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryMoreOrgData(Map<String, Object> mapValue);

	/**
	 * 查询基金风险数据
	 * ------------------------------------------------------------------
	 * 2015-2-11 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryFundRisk(Map<String, Object> mapValue);

	/**
	 * 查询基金占比GDP数据
	 * ------------------------------------------------------------------
	 * 2015-2-11 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryFundRatioGDP(Map<String, Object> mapValue);

	/**
	 * 查询单一机构某月的月均住院日和 每日费用
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryOneOrgData(Map<String, Object> mapValue, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * 查询单一机构某年的月均住院日和 每日费用
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> queryOneOrgYearData(Map<String, Object> mapValue);

	/**
	 * 住院医保费用占比相关报表
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-LIGANGYANG001 创建
	 */
	public Map<String, Object> getHosMedToWord(Map<String, Object> paramsMap, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * 门诊医保费用占比相关报表
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-ZHENGCHAO001 创建
	 */
	public Map<String, Object> getOutMedToWord(Map<String, Object> paramsMap, Map<String, Object> kpiQuotaLimitMaps);

	/**
	 * 住院费用占比相关报表Modification History: Date Version Author Description
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-LIGANGYANG001 创建
	 */
	public Map<String, Object> getHosFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * 门诊费用占比相关报表Modification History: Date Version Author Description
	 * ------------------------------------------------------------------
	 * 2015-2-6 mhis_hcpms EX-LIGANGYANG001 创建
	 */
	public Map<String, Object> getOutFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * 查询单一机构中 科室费用分析 visitType 1 ,2 用来控制是门诊还是住院
	 * -----------------------------------------------------------------
	 * 2015-2-12 mhis_hcpms ex-zhengchao001 创建
	 */
	public Map<String, Object> queryWorkDeptsData(Map<String, Object> mapValue, String visitType);

	/**
	 * Description:    报告第一、三部分门诊人次
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return map
	 * 
	
	 */
	public Map<String, Object> getTotalPersonOutNumInfo(Map<String, Object> param, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description:   报告第一、三部分门诊次均费用 
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return map
	 *
	 */
	public Map<String, Object> getTotalPersonOutNumAverageFee(Map<String, Object> param,
			Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description:    报告第一、三部分住院人次
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return map
	 * 
	 */
	public Map<String, Object> getTotalPersonHospNumInfo(Map<String, Object> param, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description:    报告第一、三部分住院次均费用
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return map
	 */
	public Map<String, Object> getTotalPersonHospNumAverageFee(Map<String, Object> param,
			Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description:     报告第二部分门诊人次和门诊次均费用
	 * @param param
	 * @return map
	 *
	 */
	public Map<String, Object> getBetweenPersonOutNumAverageFee(Map<String, Object> param);

	/**
	 * Description:    报告第二部分住院人次和住院次均费用
	 * @param param
	 * @return map
	 * 
	 */
	public Map<String, Object> getBetweenPersonHospNumAverageFee(Map<String, Object> param);

	/**
	 * Description:    报告第一、三部分医疗总费用情况，第二部分总费用总费用占比情况
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return map
	 */
	public Map<String, Object> getTotalFeePredict(Map<String, Object> param, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description:  报告第一、三部分费用占比情况  
	 * @param param
	 * @param kpiQuotaLimitMap
	 * @return
	 */
	public Map<String, Object> getPercentPredict(Map<String, Object> param, Map<String, Object> kpiQuotaLimitMap);

	/**
	 * Description: 第一部分住院药品费用
	 * 
	 * @param paramsMap
	 * @param kpiLimitValue
	 * @return
	 */
	public Map<String, Object> getHosMedicalFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第一部分住院其他费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getHosOthersFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第一部分门诊药品费用
	 * 
	 * @param paramsMap
	 * @param kpiLimitValue
	 * @return
	 */
	public Map<String, Object> getOutMedicalFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第一部分门诊 其他费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getOutOthersFeeToWord(Map<String, Object> paramsMap, Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第二部分住院不同等级的费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getHosGradeFeeToWordByGrade(Map<String, Object> paramsMap);

	/**
	 * Description: 第二部分门诊不同等级的费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getOutGradeFeeToWordByGrade(Map<String, Object> paramsMap);

	/**
	 * Description: 第三部分单一机构住院药品费用
	 * 
	 * @param paramsMap
	 * @param kpiLimitValue
	 * @return
	 */
	public Map<String, Object> getHosMedicalFeeToWordByOrg(Map<String, Object> paramsMap,
			Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第三部分单一机构住院其他费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getHosOthersFeeToWordByOrg(Map<String, Object> paramsMap,
			Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第三部分单一机构门诊药品费用
	 * 
	 * @param paramsMap
	 * @param kpiLimitValue
	 * @return
	 */
	public Map<String, Object> getOutMedicalFeeToWordByOrg(Map<String, Object> paramsMap,
			Map<String, Object> kpiLimitValue);

	/**
	 * Description: 第三部分单一机构门诊其他费用
	 * 
	 * @param paramsMap
	 * @return
	 */
	public Map<String, Object> getOutOthersFeeToWordByOrg(Map<String, Object> paramsMap,
			Map<String, Object> kpiLimitValue);

	// test
	public Map<String, Object> getMonthCheckFee(Map<String, Object> paramsMap);
}
